import GameCode.ConcreteState.FinalPlayerState;
import GameCode.ConcreteState.PrimaryPlayerState;
import GameCode.ConcreteState.ProfessionalPlayerState;
import GameCode.ConcreteState.SecondaryPlayerState;
import GameCode.PlayerContext;

public class Main {
    public static void main(String[] args) {
        PlayerContext player = new PlayerContext();

        System.out.println("---- 入门级玩家 ----");
        player.play();
        player.doubleScore();
        player.changeCards();
        player.peekCards();

        player.setCurrentState(new SecondaryPlayerState());
        System.out.println("\n---- 熟练级玩家 ----");
        player.play();
        player.doubleScore();
        player.changeCards();
        player.peekCards();

        player.setCurrentState(new ProfessionalPlayerState());
        System.out.println("\n---- 高手级玩家 ----");
        player.play();
        player.doubleScore();
        player.changeCards();
        player.peekCards();

        player.setCurrentState(new FinalPlayerState());
        System.out.println("\n---- 骨灰级玩家 ----");
        player.play();
        player.doubleScore();
        player.changeCards();
        player.peekCards();
    }
}